package aaa.aaa.timber

import android.app.Application
import com.evendai.loglibrary.Timber

class App : Application() {

    override fun onCreate() {
        super.onCreate()
        initTimber(this)

        // 设置出现未捕捉异常时,把异常写到文件中
        val def = Thread.getDefaultUncaughtExceptionHandler()
        Thread.setDefaultUncaughtExceptionHandler { thread, throwable ->
            Timber.fe(throwable)
            Thread.sleep(2000) // 日志上传到服务器需要一些时间
            def?.uncaughtException(thread, throwable)
        }

        Timber.fi("App.onCreate()执行完毕！")
    }

    companion object {

        fun initTimber(context: Application) {
            // 日志裤初始化, 注意,这里的BuildConfig要使用自己应用包名下的,不能用其他包名下的
            // 第三个参数设置日志保存在SD卡根目录还是SD卡的应用目录，如果是前者需要存储权限，后者不需要
            Timber.init(context, BuildConfig::class.java, true)

            // 日志裤初始化, 同时配置把日志写到GrayLog服务器
            // Timber.init(this, BuildConfig::class.java, true, "Android示例Demo", "192.168.1.214", 1514)

            // 日志裤初始化, 同时配置把日志写到GrayLog服务器，并设置日志前缀
            // Timber.init(this, BuildConfig::class.java, true, "Android示例Demo", "10.238.254.168", 514, " Android ${'$'}{EXT_DIR} ")
        }

    }

}